#include <opencv/cv.h>
#include <opencv/highgui.h>
#include <stdio.h>
#include <cmath>
#include <vector>
#include <float.h>
#include "opencv2/features2d/features2d.hpp"
#include "opencv2/nonfree/nonfree.hpp"

class colorVocabulary {
private:
	int dictionarySize;
	int sampleSize;
	std::vector<cv::KeyPoint> sampleKeypoint;
	cv::Mat sampleColorDescriptor;
	cv::Mat dictionary;
public:
	colorVocabulary(int dictionarySize, int sampleSize);
	void getSampleOnImage(char *filename, int numSample);
	void getSampleOnTrainingSet(std::string directory, std::string fileNameFormat, int fromFile, int toFile);
	void generateDictionary();
	cv::Mat getDictionary();
	int getSizeDictionary();
};
